Refactor workflow initialization to remove hard dependency on topoaa#921
Refactor workflow initialization to remove hard dependency on topoaa#921
topoaa#921Conversation
rvhonorato
left a comment
There was a problem hiding this comment.
It's not simple to untangle this part of the code, as you probably noticed - great job getting into it
topoaa
|
I tested the PR: it works well when the workflow is made of non-CNS modules, but when CNS modules are included a workflow without topoaa badly fails at the CNS preparation steps, without catching the error. Here an example output of contmap-test removing topoaa: |
|
The error above means you are trying to execute a CNS module without having generated the topologies, not related to the contact module Removing |
|
Basically rigidbody in this case can not be run if topoaa was not first run.
Need to define dependencies...
|
|
yes, precisely. we need to catch this exception at the beginning asking the user to add topoaa to the workflow |
|
Thanks for the review. |
|
Defining this dependency graph is quite complex and definitely besides the scope of this pr, could you please handle this in another? Remember this is a beta version and these kinds of uncaught exceptions are tolerable, it's a work in progress anyway :) |
|
must be updated |
|
This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
|
it will be continued |
|
This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
|
it wil be continued |
You are about to submit a new Pull Request. Before continuing make sure you read the contributing guidelines and that you comply with the following criteria:
toxtests pass. Runtoxcommand inside the repository folder-test.cfgexamples execute without errors. Insideexamples/runpython run_tests.py -bThis PR try to find a path to be able to do a haddock3 run without having to start with
topoaa.topoaawas hard coded in theprepare_run.py, with the deep intuition that any haddock3 runs would always start from it.Now, it is no more the case.
Input molecules (in the global parameter
molecules = [...]) are now stored inrun_dir/data/0_NameOfTheFirstModule.Basically, now the input molecules are handled by the
ModuleIOclass (inhaddock/libs/libontology.py), that mimic the output of anio.json.If it is the first module, input files are converted to
Molecules(inhaddock/libs/libontology.py), that manage them to potentially split the ensemble and return them as adict[int, PDBFile].Small modifications had to be applied to the
topoaamodule to fit this new behavior.Same to the
haddock3-scoreand[alascan]modules, because the copy of input files must now be stored at a proper location.Closes #932
TODO:
ligand_topology_fnameand ligand_parameter_fname` from modules and place it as a global parameter !